Designers of tools that perform static analysis on computer software applications are often faced with finding the right balance between precision and performance/scalability. The more accurate the analysis results are expected to be, the more information the analysis needs to maintain and reason about, which leads to degradation in performance/scalability. Some tools attempt to address this issue by statically analyzing software libraries on which software applications typically depend, and producing summaries of the behavior of the software libraries. Thereafter, when a target software application is statically analyzed, the software libraries need not be analyzed, as their summaries are used instead. This enables the static analysis of a target software application to scan less code without compromising precision, provided the libraries were statically analyzed using a precise analysis. However, this approach does have its costs, as the summaries must be maintained in storage, preferably of a type that provides efficient access when the target software application is statically analyzed. Furthermore, as such summaries are currently prepared without advance knowledge of the specific characteristics of the various target software applications that are to be statically analyzed, or of the analyses themselves, the summaries need to be exhaustive in order to adequately anticipate different sets of such characteristics, typically resulting in a cumbersome summary generation process that generates huge summaries. Another problem is that such summaries are often overly conservative, as they need to account for all possible client behaviors.